SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS OFF
GO


CREATE PROC [dbo].[SP_TXMVTO_CNTB_Q67]                                
/*-------------------------------------------------------------------*/                                
/*----- Empresa           : OFISIS S.A.                          ----*/                                
/*----- Cliente           : OFISIS S.A.                          ----*/                                
/*----- Sistema           : Contabilidad                         ----*/                                
/*----- Modulo            : Empresa                              ----*/                                
/*----- Programa          : Libro Caja y Bancos                  ----*/                                
/*----- Nombre            : SP_TXMVTO_CNTB_Q67                   ----*/                                
/*----- Script            : SP_TXMVTO_CNTB_Q67                   ----*/                                
/*----- Desarrollado por  : LMGP               ----*/                                
/*----- Fecha             : 07/09/2006                           ----*/                                
/*----- Base de Datos     : MS SQL Server                        ----*/                                
/*----- Version BD        : 2000                                 ----*/                                
/*-------------------------------------------------------------------*/                                
/*---- Modificado 1 por     :   pdgv                                 ----*/                                  
/*---- Fecha Modificaci?n   :   25/04/2007                           ----*/                                      
/*---- Detalle Modificaci?n :  se coloco outer join de la #TWMVTO_CNTB_Q49_5 respecto                       
de la tasald para que pueda visualizarse cuenta creadas en el mismo mes y que                       
tengan mov pero no saldo                                        ----*/              
/*-------------------------------------------------------------------*/                                
/*---- Modificado 1 por     :   MDLC                                 ----*/                                  
/*---- Fecha Modificaci?n   :   21/05/2010                           ----*/                                      
/*---- Detalle Modificaci?n :  En la tabla #TWMVTO_CNTB_Q49_1 se coloco dos ----*/                               
/*----  nuevas columnas TO_CARG y TO_ABON para poder cacular ----*/                               
/*----  en el reporte los saldos totales de todas cuentas    ----*/                               
/*-------------------------------------------------------------------*/                                
/*----- Drop proc SP_TXMVTO_CNTB_Q67                             ----*/                                
/*----- Grant all on SP_TXMVTO_CNTB_Q67 to PUBLIC                ----*/                                
/*----- EXEC SP_TXMVTO_CNTB_Q67 '01', 1, 2008, 9, '104100', '104100', 'UNI', 'ANA', "TASALD_EMPR.CO_UNID_CNTB in ( '030')","And #TWMVTO_CNTB_Q49_5.CO_UNID_CNTB in ( '030')" ----*/                                
/*----- EXEC SP_TXMVTO_CNTB_Q67 '01', 1, 2010, 1, '10101', '10151', 'UNI', 'ANA', '', '' ----
Exec SP_TXMVTO_CNTB_Q67 '01', 1, 2010, 9, '1010101', '1020104', 'UNI','ANA', '',''
*/                                
/*-------------------------------------------------------------------*/                              
@ISCO_EMPR TD_VC_002,                                
@INNU_CNTB_EMPR TD_IN_001_CONT,                                
@INNU_ANNO TD_IN_004_ANNO,                                
@INNU_MESE TD_IN_002_MESE,                                 
@ISCO_CNTA_INIC TD_VC_020,                                
@ISCO_CNTA_FINA TD_VC_020,                                 
@ISST_ORDE TD_VC_003, -- ORDEN: 'UNI', 'OPE', 'VOU', 'FEC'                                
@ISST_IMPR TD_VC_003, -- IMPRESION: 'ANA', 'RES', 'RCB'                                
@ISCA_WHER_SALD Varchar(2000), -- Where Filtro Cursor de Saldos                                  
@ISCA_WHER      Varchar(2000)  -- Where Tabla de Movimientos      
As                            
Declare                                 
@CSCO_CNTA_EMPR TD_VC_020,                                 
@CSDE_CNTA_EMPR TD_VC_050,                          
@CDFE_ASTO_CNTB TD_DT_001,                                 
@CSCO_OPRC_CNTB TD_VC_003,                                 
@CSNU_ASTO TD_VC_010,
@CNNU_SECU TD_IN_002,                                                               
@CSDE_GLOS TD_VC_100,                                 
@CSTI_DOCU_CABA TD_VC_003,                                 
@CSNU_DOCU_CABA TD_VC_020,                                 
@CSFE_DOCU_CABA TD_DT_001,                                 
@CSTI_DOCU_PROV TD_VC_003,                                 
@CSNU_DOCU_PROV TD_VC_020,                                 
@CSFE_DOCU_PROV TD_DT_001,                                 
@CNIM_MVTO_CARG TD_NU_016_004,                                 
@CNIM_MVTO_ABON TD_NU_016_004,                                 
@CNSA_ANTE TD_NU_016_004,                                 
@CSCO_CNTA_CONT TD_VC_020,                                 
@CSDE_CNTA_CONT TD_VC_050,                                 
@CSID_CNTA TD_VC_003,                                
@CNNU_CONT TD_IN_001,                                
@VNNV_INFO_CNTA TD_IN_001,                                
@VSNU_MESE      TD_VC_002,                                  
@VSNU_ANNO      Varchar(4),                                  
@VSNV_INFO_CNTA TD_VC_002,                                  
@VSNU_CNTB_EMPR TD_VC_002,                                
@VSDE_CNTA TD_VC_255,                                
@VSDE_CNTA_SALD TD_VC_255,                                
@VNVA_ACUM TD_NU_016_004,                                
@VSDE_ORDE TD_VC_255,                                
@VNIM_ACUM TD_NU_016_004,                                
@CSCO_UNID_CNTB TD_VC_003,                                
@VNNU_CONT TD_IN_001,                                
@VSCO_CNTA_EMPR TD_VC_020,                
@VSCA_WHER_SALD Varchar(2000),        
@VNIM_CARG TD_NU_016_004,        
@VNIM_ABON TD_NU_016_004        
                                
Select @VNNV_INFO_CNTA = NV_INFO_CNTA                                       
From TMPARA_CONT                                      
Where CO_EMPR = @ISCO_EMPR                                      
                                      
CREATE TABLE [dbo].[#TWMVTO_CNTB_Q49_1](                                      
CO_CNTA_EMPR   VARCHAR(20),                                       
DE_CNTA_EMPR    VARCHAR(50),                                      
FE_ASTO_CNTB    DATETIME NULL,                                       
CO_UNID_CNTB    VARCHAR(3) NULL,                                       
CO_OPRC_CNTB    VARCHAR(3) NULL,                                       
NU_ASTO  VARCHAR(10) NULL,        
NU_SECU  INT NULL,                                   
DE_GLOS  VARCHAR(100) NULL,                                       
TI_DOCU_CABA VARCHAR(3) NULL,                                       
NU_DOCU_CABA VARCHAR(20) NULL,                                      
FE_DOCU_CABA DATETIME NULL,                                       
TI_DOCU_PROV VARCHAR(3) NULL,                                       
NU_DOCU_PROV    VARCHAR(20) NULL,                                      
FE_DOCU_PROV    DATETIME NULL,                                       
IM_MVTO_CARG    NUMERIC(16, 4) NULL,                                        
IM_MVTO_ABON NUMERIC(16, 4) NULL,                                       
SA_ANTE  NUMERIC(16, 4) NULL,                                       
IM_ACUM  NUMERIC(16, 4) NULL,        
CO_CNTA_CONT VARCHAR(20) NULL,                                       
NU_CONT  INTEGER IDENTITY(1,1),                                      
ID_CNTA  VARCHAR(3) NULL,                          
CO_MEPA VARCHAR(3) NULL,                          
DE_MEPA VARCHAR(100) NULL,                          
NO_GIRA VARCHAR(100) NULL,              
TO_CARG  NUMERIC(16, 4) NULL,   -- nuevo              
TO_ABON  NUMERIC(16, 4) NULL)   -- nuevo                       
                    
CREATE TABLE [dbo].[#TWMVTO_CNTB_Q49_2](                                      
CO_CNTA_EMPR   VARCHAR(20),                                       
DE_CNTA_EMPR    VARCHAR(50),                                      
FE_ASTO_CNTB    DATETIME NULL,                                       
CO_UNID_CNTB    VARCHAR(3) NULL,                                       
CO_OPRC_CNTB    VARCHAR(3) NULL,                                       
NU_ASTO  VARCHAR(10) NULL,       
NU_SECU  INT NULL,                      
DE_GLOS  VARCHAR(100) NULL,                                       
TI_DOCU_CABA VARCHAR(3) NULL,                                       
NU_DOCU_CABA VARCHAR(20) NULL,                                      
FE_DOCU_CABA DATETIME NULL,                           
TI_DOCU_PROV VARCHAR(3) NULL,                                       
NU_DOCU_PROV    VARCHAR(20) NULL,                                      
FE_DOCU_PROV    DATETIME NULL,                                       
IM_MVTO_CARG    NUMERIC(16, 4) NULL,                       
IM_MVTO_ABON NUMERIC(16, 4) NULL,                                       
SA_ANTE  NUMERIC(16, 4) NULL,                                       
IM_ACUM  NUMERIC(16, 4) NULL,                                       
CO_CNTA_CONT VARCHAR(20) NULL,                                       
NU_CONT  INTEGER IDENTITY(1,1),                                      
ID_CNTA  VARCHAR(3) NULL,                          
CO_MEPA VARCHAR(3) NULL,                          
DE_MEPA VARCHAR(100) NULL,                          
NO_GIRA VARCHAR(100) NULL)                          
                   
CREATE TABLE [dbo].[#TWMVTO_CNTB_Q49_3](                                      
CO_CNTA_EMPR   VARCHAR(20),                                       
DE_CNTA_EMPR    VARCHAR(50),                                      
FE_ASTO_CNTB    DATETIME NULL,                                       
CO_UNID_CNTB    VARCHAR(3) NULL,                                       
CO_OPRC_CNTB    VARCHAR(3) NULL,                                       
NU_ASTO  VARCHAR(10) NULL,       
NU_SECU  INT  NULL,                                  
DE_GLOS  VARCHAR(100) NULL,                                       
TI_DOCU_CABA VARCHAR(3) NULL,                   
NU_DOCU_CABA VARCHAR(20) NULL,                                      
FE_DOCU_CABA DATETIME NULL,                                       
TI_DOCU_PROV VARCHAR(3) NULL,                                       
NU_DOCU_PROV    VARCHAR(20) NULL,                                      
FE_DOCU_PROV    DATETIME NULL,                                       
IM_MVTO_CARG    NUMERIC(16, 4) NULL,                                        
IM_MVTO_ABON NUMERIC(16, 4) NULL,                                       
SA_ANTE  NUMERIC(16, 4) NULL,                                       
IM_ACUM  NUMERIC(16, 4) NULL,                                       
CO_CNTA_CONT VARCHAR(20) NULL,                                       
NU_CONT  INTEGER IDENTITY(1,1),                                      
ID_CNTA  VARCHAR(3) NULL,                          
CO_MEPA VARCHAR(3) NULL,                          
DE_MEPA VARCHAR(100) NULL,                          
NO_GIRA VARCHAR(100) NULL)                          
                 
CREATE TABLE [dbo].[#TWMVTO_CNTB_Q49_4](                                      
CO_CNTA_EMPR   VARCHAR(20),                                       
DE_CNTA_EMPR    VARCHAR(50),                                      
FE_ASTO_CNTB    DATETIME NULL,                                       
CO_UNID_CNTB    VARCHAR(3) NULL,                    
CO_OPRC_CNTB    VARCHAR(3) NULL,                                       
NU_ASTO  VARCHAR(10) NULL,    
NU_SECU  INT NULL,    
DE_GLOS  VARCHAR(100) NULL,                                       
TI_DOCU_CABA VARCHAR(3) NULL,                                       
NU_DOCU_CABA VARCHAR(20) NULL,                                      
FE_DOCU_CABA DATETIME NULL,                                       
TI_DOCU_PROV VARCHAR(3) NULL,                                       
NU_DOCU_PROV    VARCHAR(20) NULL,                                      
FE_DOCU_PROV    DATETIME NULL,                                       
IM_MVTO_CARG    NUMERIC(16, 4) NULL,                                        
IM_MVTO_ABON NUMERIC(16, 4) NULL,                                       
SA_ANTE  NUMERIC(16, 4) NULL,                                       
IM_ACUM  NUMERIC(16, 4) NULL,                                       
CO_CNTA_CONT VARCHAR(20) NULL,                                       
NU_CONT  INTEGER IDENTITY(1,1),                                      
ID_CNTA  VARCHAR(3) NULL,                          
CO_MEPA VARCHAR(3) NULL,                          
DE_MEPA VARCHAR(100) NULL,                          
NO_GIRA VARCHAR(100) NULL)                          
                
CREATE TABLE #TWMVTO_CNTB_Q49_5                
(CO_EMPR  VARCHAR(02),                
NU_CNTB_EMPR INT,                
CO_UNID_CNTB VARCHAR(03),                
CO_OPRC_CNTB VARCHAR(03),                
NU_ANNO   INT,                
NU_MESE   INT,                
NU_ASTO   VARCHAR(10),                
NU_SECU   INT,                
FE_ASTO_CNTB DATETIME,                
CO_CNTA_EMPR VARCHAR(20),                
TI_AUXI_EMPR VARCHAR(01) NULL,                
CO_AUXI_EMPR VARCHAR(20) NULL,                
TI_DOCU   VARCHAR(03) NULL,                
NU_DOCU   VARCHAR(20) NULL,                
FE_DOCU   DATETIME NULL,                
FE_DOCU_VENC DATETIME NULL,                
TI_CAMB   VARCHAR(03) NULL,                
CO_MONE   VARCHAR(03) NULL,                
FA_CAMB   NUMERIC(15, 6) NULL,               
FA_CAMB_DIAR NUMERIC(15, 6) NULL,                
TI_OPER   VARCHAR(03) NULL,                
IM_MVTO_ORIG NUMERIC(16, 4) NULL,                
IM_MVTO_CNTB NUMERIC(16, 4) NULL,                
DE_GLOS   VARCHAR(100) NULL,                
TI_DOCU_REFE VARCHAR(03) NULL,                
NU_DOCU_REFE VARCHAR(20) NULL,                
FE_DOCU_REFE DATETIME NULL,                
NO_GIRA   VARCHAR(100) NULL,                
FE_ENTR_CHEQ DATETIME NULL,                
FE_PROG_CHEQ DATETIME NULL,                
CO_ORDE_SERV VARCHAR(20) NULL,                
SI_MVTO_CNTB VARCHAR(03) NULL,                
CO_UNID_ORIG VARCHAR(03) NULL,                
CO_OPRC_ORIG VARCHAR(03) NULL,                
NU_ASTO_ORIG VARCHAR(10) NULL,                
NU_SECU_ORIG INT NULL,                
CO_CNTA_ORIG VARCHAR(20) NULL,                
ST_OTRS   VARCHAR(20) NULL,                
NU_PROC   INT NULL,                
NU_PROC_SECU INT NULL,                
ST_IMPR_CHEQ VARCHAR(01) NULL,                 
ST_FLAG VARCHAR(20) NULL,                
ST_GEST VARCHAR(01) NULL,                
ST_REDO VARCHAR(01) NULL,                
CO_TABL_ORIG INT NULL,                
CO_CLAV_TAOR VARCHAR(100) NULL,                
CO_TIPO_OPER VARCHAR(03) NULL,                
IM_MVTO_RETE NUMERIC(16, 4) NULL,                
ST_IMPR_RETE VARCHAR(01) NULL,                
CO_USUA_APRO VARCHAR(08) NULL,                
FE_USUA_APRO DATETIME NULL,                
NU_SECU_DIST INT NULL,                
ST_CANC_DOCU VARCHAR(01) NULL,                
ST_DIFE_MAYO VARCHAR(01) NULL,                
ST_DIFE_CAMB VARCHAR(01) NULL,                
ST_MASI VARCHAR(01) NULL,                
ST_AJUS_ORIG VARCHAR(01) NULL,                
FE_PAGO DATETIME NULL,                
FE_PAGO_AGEN DATETIME NULL,                
NU_ORDE_FORM NUMERIC(16, 4) NULL,                
CO_MEPA VARCHAR(03) NULL)                
                
CREATE TABLE #TWMVTO_CNTB_Q49_6                
(CO_EMPR VARCHAR(02),          
CO_UNID_CNTB VARCHAR(03),                 
NU_CNTB_EMPR INT,                 
NU_ANNO INT,                 
NU_MESE INT,                
CO_CNTA_EMPR VARCHAR(20),                 
TI_AUXI_EMPR VARCHAR(1) NULL,                 
CO_AUXI_EMPR VARCHAR(20) NULL,                
CO_ORDE_SERV VARCHAR(20) NULL,                 
IM_CARG_CNTB NUMERIC(16, 4),                 
IM_ABON_CNTB NUMERIC(16, 4))                
                                     
Select @VSNU_MESE = Convert(Varchar, @INNU_MESE)      
Select @VSNU_ANNO = Convert(Varchar, @INNU_ANNO)                                        
Select @VSNU_CNTB_EMPR = Convert(Varchar, @INNU_CNTB_EMPR)                                        
Select @VSNV_INFO_CNTA = Convert(Varchar, @VNNV_INFO_CNTA)                                        
                                      
If Datalength(@ISCO_CNTA_INIC) > 0 And Datalength(@ISCO_CNTA_FINA) > 0                                      
Begin                                      
  Select @VSDE_CNTA = ' And #TWMVTO_CNTB_Q49_5.CO_CNTA_EMPR >= "' + @ISCO_CNTA_INIC + '" And #TWMVTO_CNTB_Q49_5.CO_CNTA_EMPR <= "' + @ISCO_CNTA_FINA + '" '                                      
  Select @VSDE_CNTA_SALD = ' And TASALD_EMPR.CO_CNTA_EMPR >= "' + @ISCO_CNTA_INIC + '" And TASALD_EMPR.CO_CNTA_EMPR <= "' + @ISCO_CNTA_FINA + '" '                                      
End                                      
Else                                      
Begin                                      
  Select @VSDE_CNTA = ' '                                      
  Select @VSDE_CNTA_SALD = ' '                                      
End                                      
                  
If @ISST_ORDE = 'UNI'                                      
SELECT @VSDE_ORDE = ' ORDER BY 1, 4, 3, 5, 6 '                                       
                                      
Else If @ISST_ORDE = 'OPE'                                      
SELECT @VSDE_ORDE = ' ORDER BY 1, 5, 6 '                                      
                                      
Else If @ISST_ORDE = 'VOU'                                      
SELECT @VSDE_ORDE = ' ORDER BY 1, 6, 5 '                                      
                                      
Else If @ISST_ORDE = 'FEC'                
SELECT @VSDE_ORDE = ' ORDER BY 1, 3, 5, 6 '                      
                     
IF ISNULL(@ISCA_WHER_SALD,'') = ''                      
   SELECT @VSCA_WHER_SALD = ''                      
ELSE                       
   SELECT @VSCA_WHER_SALD = 'and '+ @ISCA_WHER_SALD              
              
EXEC('insert into #TWMVTO_CNTB_Q49_5                
(CO_CNTA_EMPR, FE_ASTO_CNTB, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO, CO_EMPR, NU_CNTB_EMPR, NU_ANNO, NU_MESE, NU_SECU,                 
TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE,                
FA_CAMB, FA_CAMB_DIAR, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE, NU_DOCU_REFE, FE_DOCU_REFE,                
NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV, SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,                 
NU_SECU_ORIG, CO_CNTA_ORIG, ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, ST_GEST, ST_REDO,                 
CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER, IM_MVTO_RETE, ST_IMPR_RETE, CO_USUA_APRO, FE_USUA_APRO,                 
ST_CANC_DOCU, ST_DIFE_MAYO, ST_DIFE_CAMB, ST_MASI, ST_AJUS_ORIG, FE_PAGO, CO_MEPA)                
select CO_CNTA_EMPR, FE_ASTO_CNTB, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO, CO_EMPR, NU_CNTB_EMPR, NU_ANNO, NU_MESE,                 
NU_SECU, TI_AUXI_EMPR, CO_AUXI_EMPR, TI_DOCU, NU_DOCU, FE_DOCU, FE_DOCU_VENC, TI_CAMB, CO_MONE,                
FA_CAMB, FA_CAMB_DIAR, TI_OPER, IM_MVTO_ORIG, IM_MVTO_CNTB, DE_GLOS, TI_DOCU_REFE, NU_DOCU_REFE, FE_DOCU_REFE,                
NO_GIRA, FE_ENTR_CHEQ, FE_PROG_CHEQ, CO_ORDE_SERV, SI_MVTO_CNTB, CO_UNID_ORIG, CO_OPRC_ORIG, NU_ASTO_ORIG,                 
NU_SECU_ORIG, CO_CNTA_ORIG, ST_OTRS, NU_PROC, NU_PROC_SECU, ST_IMPR_CHEQ, ST_FLAG, ST_GEST, ST_REDO,                 
CO_TABL_ORIG, CO_CLAV_TAOR, CO_TIPO_OPER, IM_MVTO_RETE, ST_IMPR_RETE, CO_USUA_APRO, FE_USUA_APRO,                 
ST_CANC_DOCU, ST_DIFE_MAYO, ST_DIFE_CAMB, ST_MASI, ST_AJUS_ORIG, FE_PAGO, CO_MEPA                
from TXMVTO_CNTB                 
Where CO_EMPR = "' + @ISCO_EMPR + '"                                      
And NU_CNTB_EMPR = ' + @VSNU_CNTB_EMPR + '                              
And NU_ANNO = ' + @VSNU_ANNO  + '                
And NU_MESE = ' + @VSNU_MESE  + '                
And SI_MVTO_CNTB = "APR" ' + @ISCA_WHER + @VSDE_ORDE)              
                
EXEC('insert into #TWMVTO_CNTB_Q49_6                
(CO_EMPR, CO_UNID_CNTB, NU_CNTB_EMPR, NU_ANNO, NU_MESE, CO_CNTA_EMPR,  TI_AUXI_EMPR, CO_AUXI_EMPR,                
CO_ORDE_SERV, IM_CARG_CNTB, IM_ABON_CNTB)                
select CO_EMPR, CO_UNID_CNTB, NU_CNTB_EMPR, NU_ANNO, NU_MESE, CO_CNTA_EMPR,  TI_AUXI_EMPR, CO_AUXI_EMPR,                
CO_ORDE_SERV, IM_CARG_CNTB, IM_ABON_CNTB                
From TASALD_EMPR                         
 Where co_empr = "' + @ISCO_EMPR + '"                                  
 And nu_cntb_empr = ' + @VSNU_CNTB_EMPR + '                                  
 And nu_anno = ' + @VSNU_ANNO  + '                                  
 And nu_mese < ' + @VSNU_MESE  + '                                  
 And TI_AUXI_EMPR IS NULL                    
 And CO_AUXI_EMPR IS NULL                              
 And CO_ORDE_SERV IS NULL                                 
 And Datalength(CO_CNTA_EMPR) = ' + @VSNV_INFO_CNTA + @VSDE_CNTA_SALD + @VSCA_WHER_SALD  )              
                                 
EXEC('INSERT INTO #TWMVTO_CNTB_Q49_2(CO_CNTA_EMPR, DE_CNTA_EMPR, FE_ASTO_CNTB, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO,                                   
 DE_GLOS, TI_DOCU_CABA, NU_DOCU_CABA, FE_DOCU_CABA, TI_DOCU_PROV, NU_DOCU_PROV, FE_DOCU_PROV,                                 
 IM_MVTO_CARG,  IM_MVTO_ABON, SA_ANTE, CO_CNTA_CONT, ID_CNTA, CO_MEPA, DE_MEPA, NO_GIRA, NU_SECU)                 
Select T4.CO_CNTA_EMPR, T4.DE_CNTA_EMPR, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,                                   
NULL, 0 AS CARGO_PROV, 0 AS ABONO_PROV, T2.SA_ANTE, NULL, T3.ID_CNTA, NULL, NULL, NULL, 0                       
From  (Select CO_EMPR, NU_CNTB_EMPR, CO_CNTA_EMPR, SUM(IM_CARG_CNTB - IM_ABON_CNTB) AS SA_ANTE                                
 From #TWMVTO_CNTB_Q49_6                                
 Where co_empr = "' + @ISCO_EMPR + '"                                  
 And nu_cntb_empr = ' + @VSNU_CNTB_EMPR + '                                  
 And nu_anno = ' + @VSNU_ANNO  + '                                  
 And nu_mese < ' + @VSNU_MESE  + '                                  
 And TI_AUXI_EMPR IS NULL                    
 And CO_AUXI_EMPR IS NULL                              
 And CO_ORDE_SERV IS NULL                                 
 And Datalength(CO_CNTA_EMPR) = ' + @VSNV_INFO_CNTA + '                                
 Group By CO_EMPR, NU_CNTB_EMPR, CO_CNTA_EMPR) T2, TTIDEN_CNTA T3, TMPLAN_EMPR T4                                
 Where T3.CO_EMPR = T2.CO_EMPR                                
And t3.NU_ANNO = 9999                                
And T3.NU_CNTB_EMPR = T2.NU_CNTB_EMPR                                
And T3.ID_CNTA IN( "021", "036")                                
And T3.CO_CNTA_EMPR = T2.CO_CNTA_EMPR                                
And T4.CO_EMPR = T2.CO_EMPR             
And T4.CO_CNTA_EMPR = T2.CO_CNTA_EMPR                                
AND T4.CO_CNTA_EMPR NOT IN (SELECT #TWMVTO_CNTB_Q49_5.CO_CNTA_EMPR FROM #TWMVTO_CNTB_Q49_5                                
    Where #TWMVTO_CNTB_Q49_5.CO_EMPR = T3.CO_EMPR                                
    And #TWMVTO_CNTB_Q49_5.NU_CNTB_EMPR = T3.NU_CNTB_EMPR                                
    And #TWMVTO_CNTB_Q49_5.NU_ANNO = ' + @VSNU_ANNO  + '                                  
    And #TWMVTO_CNTB_Q49_5.NU_MESE = ' + @VSNU_MESE  + '                                  
    And #TWMVTO_CNTB_Q49_5.CO_CNTA_EMPR = T3.CO_CNTA_EMPR                               
    And #TWMVTO_CNTB_Q49_5.SI_MVTO_CNTB = "APR" ' + @VSDE_CNTA + ' ) ' )                
                
Exec ( 'INSERT INTO #TWMVTO_CNTB_Q49_3(CO_CNTA_EMPR, DE_CNTA_EMPR, FE_ASTO_CNTB, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO,                                   
 DE_GLOS, TI_DOCU_CABA, NU_DOCU_CABA, FE_DOCU_CABA, TI_DOCU_PROV, NU_DOCU_PROV, FE_DOCU_PROV,                                 
 IM_MVTO_CARG,  IM_MVTO_ABON, SA_ANTE, CO_CNTA_CONT, ID_CNTA, CO_MEPA, DE_MEPA, NO_GIRA, NU_SECU)                    
Select #TWMVTO_CNTB_Q49_5.CO_CNTA_EMPR, MAX(T4.DE_CNTA_EMPR), MAX(#TWMVTO_CNTB_Q49_5.FE_ASTO_CNTB), #TWMVTO_CNTB_Q49_5.CO_UNID_CNTB,         
MAX(#TWMVTO_CNTB_Q49_5.CO_OPRC_CNTB), #TWMVTO_CNTB_Q49_5.NU_ASTO, MAX(#TWMVTO_CNTB_Q49_5.DE_GLOS), MAX(#TWMVTO_CNTB_Q49_5.TI_DOCU), MAX(#TWMVTO_CNTB_Q49_5.NU_DOCU),                       
MAX(#TWMVTO_CNTB_Q49_5.FE_DOCU), T5.TI_DOCU, T5.NU_DOCU, MAX(T5.FE_DOCU), PATINDEX("ABO", T5.TI_OPER) * T5.IM_MVTO_CNTB AS CARGO_PROV,                       
PATINDEX("CAR", T5.TI_OPER) * T5.IM_MVTO_CNTB AS ABONO_PROV, MAX(IsNull(T2.SA_ANTE,0)), T5.CO_CNTA_EMPR, MAX(T3.ID_CNTA),                       
MAX(#TWMVTO_CNTB_Q49_5.CO_MEPA), MAX(T6.DE_MEPA), MAX(#TWMVTO_CNTB_Q49_5.NO_GIRA), MAX(T5.NU_SECU)  
From #TWMVTO_CNTB_Q49_5                       
 LEFT OUTER JOIN                                 
 (Select CO_EMPR, NU_CNTB_EMPR, CO_CNTA_EMPR, SUM(IM_CARG_CNTB - IM_ABON_CNTB) AS SA_ANTE                                
 From #TWMVTO_CNTB_Q49_6                                
 Where co_empr = "' + @ISCO_EMPR + '"                                
 And nu_cntb_empr = ' + @VSNU_CNTB_EMPR + '                                
 And nu_anno = ' + @VSNU_ANNO  + '                                
 And nu_mese < ' + @VSNU_MESE  + '                                
 And Datalength(CO_CNTA_EMPR) = ' + @VSNV_INFO_CNTA + '                                
 And TI_AUXI_EMPR IS NULL                                
 And CO_AUXI_EMPR IS NULL                                
 And CO_ORDE_SERV IS NULL                 
 Group By CO_EMPR, NU_CNTB_EMPR, CO_CNTA_EMPR) T2 ON                      
 #TWMVTO_CNTB_Q49_5.CO_CNTA_EMPR = T2.CO_CNTA_EMPR                          
 LEFT OUTER JOIN TTMEDI_PAGO T6                      
 ON #TWMVTO_CNTB_Q49_5.CO_EMPR = T6.CO_EMPR                      
 And #TWMVTO_CNTB_Q49_5.CO_MEPA = T6.CO_MEPA,                      
 TTIDEN_CNTA T3, TMPLAN_EMPR T4, #TWMVTO_CNTB_Q49_5 T5                                
Where #TWMVTO_CNTB_Q49_5.CO_EMPR = "' + @ISCO_EMPR + '"                                
And #TWMVTO_CNTB_Q49_5.NU_CNTB_EMPR =  ' + @VSNU_CNTB_EMPR + '                                
And #TWMVTO_CNTB_Q49_5.NU_ANNO = ' + @VSNU_ANNO  + '                                
And #TWMVTO_CNTB_Q49_5.NU_MESE = ' + @VSNU_MESE  + '                                
And #TWMVTO_CNTB_Q49_5.SI_MVTO_CNTB = "APR"                                 
And #TWMVTO_CNTB_Q49_5.ST_DIFE_CAMB = "N" ' + @VSDE_CNTA + '                                 
And T3.CO_EMPR = #TWMVTO_CNTB_Q49_5.CO_EMPR             
And t3.NU_ANNO = 9999                                
And T3.NU_CNTB_EMPR = #TWMVTO_CNTB_Q49_5.NU_CNTB_EMPR                                
And T3.ID_CNTA IN( "021", "036")                                
And T3.CO_CNTA_EMPR = #TWMVTO_CNTB_Q49_5.CO_CNTA_EMPR                                
And T4.CO_EMPR = #TWMVTO_CNTB_Q49_5.CO_EMPR                                
And T4.CO_CNTA_EMPR = #TWMVTO_CNTB_Q49_5.CO_CNTA_EMPR                                
And T5.CO_EMPR = #TWMVTO_CNTB_Q49_5.CO_EMPR                                
And T5.NU_CNTB_EMPR = #TWMVTO_CNTB_Q49_5.NU_CNTB_EMPR                                
And T5.CO_UNID_CNTB = #TWMVTO_CNTB_Q49_5.CO_UNID_CNTB                                
And T5.CO_OPRC_CNTB = #TWMVTO_CNTB_Q49_5.CO_OPRC_CNTB                                
And T5.NU_ANNO = #TWMVTO_CNTB_Q49_5.NU_ANNO                                
And T5.NU_MESE = #TWMVTO_CNTB_Q49_5.NU_MESE                                And T5.NU_ASTO = #TWMVTO_CNTB_Q49_5.NU_ASTO                                
And T5.SI_MVTO_CNTB = "APR"                                
And T5.ST_GEST = "N"                                
And (T5.ST_DIFE_CAMB = "N"                                 
     Or (T5.ST_DIFE_CAMB = "S"                                 
 And T5.NU_ASTO_ORIG = #TWMVTO_CNTB_Q49_5.NU_ASTO                                
 And T5.CO_CNTA_ORIG = #TWMVTO_CNTB_Q49_5.CO_CNTA_EMPR                                
 And T5.CO_CNTA_EMPR <> T5.CO_CNTA_ORIG))                       
GROUP BY #TWMVTO_CNTB_Q49_5.CO_UNID_CNTB, #TWMVTO_CNTB_Q49_5.CO_CNTA_EMPR, #TWMVTO_CNTB_Q49_5.NU_ASTO, T5.NU_SECU, T5.TI_OPER, T5.IM_MVTO_CNTB, T5.TI_DOCU,                     
T5.NU_DOCU, T5.CO_CNTA_EMPR  ')              
                
Exec('INSERT INTO #TWMVTO_CNTB_Q49_4(CO_CNTA_EMPR, DE_CNTA_EMPR, FE_ASTO_CNTB, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO,                                   
 DE_GLOS, TI_DOCU_CABA, NU_DOCU_CABA, FE_DOCU_CABA, TI_DOCU_PROV, NU_DOCU_PROV, FE_DOCU_PROV,                                 
 IM_MVTO_CARG,  IM_MVTO_ABON, SA_ANTE, CO_CNTA_CONT, ID_CNTA, CO_MEPA, DE_MEPA, NO_GIRA, NU_SECU)                    
Select DISTINCT #TWMVTO_CNTB_Q49_5.CO_CNTA_EMPR, T4.DE_CNTA_EMPR, #TWMVTO_CNTB_Q49_5.FE_ASTO_CNTB, #TWMVTO_CNTB_Q49_5.CO_UNID_CNTB,                                 
#TWMVTO_CNTB_Q49_5.CO_OPRC_CNTB, #TWMVTO_CNTB_Q49_5.NU_ASTO, T5.DE_GLOS, NULL, NULL, NULL, NULL, NULL, T5.FE_DOCU,                       
PATINDEX("ABO", T5.TI_OPER) * T5.IM_MVTO_CNTB AS CARGO_PROV, PATINDEX("CAR", T5.TI_OPER) * T5.IM_MVTO_CNTB AS ABONO_PROV,                       
IsNull(T2.SA_ANTE,0), T5.CO_CNTA_EMPR, T3.ID_CNTA, NULL , NULL, NULL, T5.NU_SECU                   
From #TWMVTO_CNTB_Q49_5                 
 LEFT OUTER JOIN                             
 (Select CO_EMPR, NU_CNTB_EMPR, CO_CNTA_EMPR, SUM(IM_CARG_CNTB - IM_ABON_CNTB) AS SA_ANTE                              
 From #TWMVTO_CNTB_Q49_6                                
 Where co_empr = "' + @ISCO_EMPR + '"                                
 And nu_cntb_empr = ' + @VSNU_CNTB_EMPR + '                                
 And nu_anno = ' + @VSNU_ANNO  + '                                
 And nu_mese < ' + @VSNU_MESE  + '                                
 And Datalength(CO_CNTA_EMPR) = ' + @VSNV_INFO_CNTA + '                                
 And TI_AUXI_EMPR IS NULL                                
 And CO_AUXI_EMPR IS NULL                                
 And CO_ORDE_SERV IS NULL                                
 Group By CO_EMPR, NU_CNTB_EMPR, CO_CNTA_EMPR) T2                            
ON #TWMVTO_CNTB_Q49_5.CO_CNTA_EMPR = T2.CO_CNTA_EMPR,   
TTIDEN_CNTA T3, TMPLAN_EMPR T4, #TWMVTO_CNTB_Q49_5 T5                                
Where #TWMVTO_CNTB_Q49_5.CO_EMPR = "' + @ISCO_EMPR + '"                                
And #TWMVTO_CNTB_Q49_5.NU_CNTB_EMPR = ' + @VSNU_CNTB_EMPR + '                                
And #TWMVTO_CNTB_Q49_5.NU_ANNO = ' + @VSNU_ANNO  + '                                
And #TWMVTO_CNTB_Q49_5.NU_MESE = ' + @VSNU_MESE  + '                                
And #TWMVTO_CNTB_Q49_5.CO_OPRC_CNTB IN (Select CO_OPRC_CNTB                                
   From TTIDEN_OPER                                
   Where CO_EMPR = "' + @ISCO_EMPR + '"                                
   And NU_CNTB_EMPR = ' + @VSNU_CNTB_EMPR + '                                
   And ID_OPRC IN ("003", "027"))                                
And #TWMVTO_CNTB_Q49_5.SI_MVTO_CNTB = "APR" ' + @VSDE_CNTA + '                         
And T3.CO_EMPR = #TWMVTO_CNTB_Q49_5.CO_EMPR                                
And t3.NU_ANNO = 9999                                
And T3.NU_CNTB_EMPR = #TWMVTO_CNTB_Q49_5.NU_CNTB_EMPR                                
And T3.ID_CNTA IN( "021", "036")                                
And T3.CO_CNTA_EMPR = #TWMVTO_CNTB_Q49_5.CO_CNTA_EMPR                                
And T4.CO_EMPR = #TWMVTO_CNTB_Q49_5.CO_EMPR                                
And T4.CO_CNTA_EMPR = #TWMVTO_CNTB_Q49_5.CO_CNTA_EMPR                                
And T5.CO_EMPR = #TWMVTO_CNTB_Q49_5.CO_EMPR                                
And T5.NU_CNTB_EMPR = #TWMVTO_CNTB_Q49_5.NU_CNTB_EMPR                                
And T5.CO_UNID_CNTB = #TWMVTO_CNTB_Q49_5.CO_UNID_CNTB                                
And T5.CO_OPRC_CNTB = #TWMVTO_CNTB_Q49_5.CO_OPRC_CNTB                   
And T5.NU_ANNO = #TWMVTO_CNTB_Q49_5.NU_ANNO                                
And T5.NU_MESE = #TWMVTO_CNTB_Q49_5.NU_MESE                           
And T5.NU_ASTO = #TWMVTO_CNTB_Q49_5.NU_ASTO                                
And T5.SI_MVTO_CNTB = "APR"                                
And T5.ST_GEST = "N"                                
And T5.ST_DIFE_CAMB = "S"                                 
And T5.CO_OPRC_CNTB IN (Select CO_OPRC_CNTB                                
   From TTIDEN_OPER                                
   Where CO_EMPR = "' + @ISCO_EMPR + '"                                
   And NU_CNTB_EMPR = ' + @VSNU_CNTB_EMPR + '                                
   And ID_OPRC IN ("003", "027"))' )                                   
                
EXEC(' INSERT INTO #TWMVTO_CNTB_Q49_1(CO_CNTA_EMPR, DE_CNTA_EMPR, FE_ASTO_CNTB, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO,                                   
 DE_GLOS, TI_DOCU_CABA, NU_DOCU_CABA, FE_DOCU_CABA, TI_DOCU_PROV, NU_DOCU_PROV, FE_DOCU_PROV,                                 
 IM_MVTO_CARG,  IM_MVTO_ABON, SA_ANTE, CO_CNTA_CONT, ID_CNTA, CO_MEPA, DE_MEPA, NO_GIRA, NU_SECU)                 
 Select CO_CNTA_EMPR, DE_CNTA_EMPR, FE_ASTO_CNTB, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO,                                   
 DE_GLOS, TI_DOCU_CABA, NU_DOCU_CABA, FE_DOCU_CABA, TI_DOCU_PROV, NU_DOCU_PROV, FE_DOCU_PROV,                                 
 IM_MVTO_CARG,  IM_MVTO_ABON, SA_ANTE, CO_CNTA_CONT, ID_CNTA, CO_MEPA, DE_MEPA, NO_GIRA, NU_SECU                
 From #TWMVTO_CNTB_Q49_2                
 Union All                
 Select CO_CNTA_EMPR, DE_CNTA_EMPR, FE_ASTO_CNTB, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO,                                   
 DE_GLOS, TI_DOCU_CABA, NU_DOCU_CABA, FE_DOCU_CABA, TI_DOCU_PROV, NU_DOCU_PROV, FE_DOCU_PROV,                                 
 IM_MVTO_CARG,  IM_MVTO_ABON, SA_ANTE, CO_CNTA_CONT, ID_CNTA, CO_MEPA, DE_MEPA, NO_GIRA, NU_SECU     
 From #TWMVTO_CNTB_Q49_3                
 Union All                
 Select CO_CNTA_EMPR, DE_CNTA_EMPR, FE_ASTO_CNTB, CO_UNID_CNTB, CO_OPRC_CNTB, NU_ASTO,                                   
 DE_GLOS, TI_DOCU_CABA, NU_DOCU_CABA, FE_DOCU_CABA, TI_DOCU_PROV, NU_DOCU_PROV, FE_DOCU_PROV,                                 
 IM_MVTO_CARG,  IM_MVTO_ABON, SA_ANTE, CO_CNTA_CONT, ID_CNTA, CO_MEPA, DE_MEPA, NO_GIRA, NU_SECU                
 From #TWMVTO_CNTB_Q49_4 ' + @VSDE_ORDE )                
                                      
DELETE FROM #TWMVTO_CNTB_Q49_1                                      
WHERE CO_CNTA_EMPR = CO_CNTA_CONT                         
                                   
------------------------------------------------------------------------------------------------------------                
If @ISST_IMPR = 'ANA'   -- Detallado                 
Begin                                
                               
--Select convert(varchar(4), @INNU_ANNO) + '0' + convert(varchar(2), @INNU_MESE) + '00',
Select T1.CO_UNID_CNTB as 'unidad', T1.CO_OPRC_CNTB as 'operacion', T1.NU_ASTO as 'asiento',
T1.NU_SECU as 'secuencia', CONVERT(VARCHAR(10),T1.FE_ASTO_CNTB, 103) AS 'FECHA_OPERAC',
convert(varchar(100),REPLACE(REPLACE(REPLACE(T1.DE_GLOS,CHAR(13),''),CHAR(10),''),'|',''),100) 'GLOSA', 
T1.IM_MVTO_CARG as 'debe', T1.IM_MVTO_ABON as 'HABER', '1',
T1.CO_MEPA AS 'MEDIO_PAGO', T1.DE_MEPA AS 'DESCRIP_MEDIO_PAGO', 
T1.CO_CNTA_EMPR, T1.DE_CNTA_EMPR, T1.TI_DOCU_CABA + T1.NU_DOCU_CABA AS 'DOC_TRANSACCION',                  
CASE WHEN (ID_CNTA = '036' AND T1.TI_DOCU_CABA IS NOT NULL) THEN CONVERT(VARCHAR(10),T1.FE_ASTO_CNTB, 103)                 
ELSE CONVERT(VARCHAR(10),T1.FE_DOCU_CABA, 103) END AS FE_DOCU_CABA, 
T2.DE_CNTA_EMPR, T1.SA_ANTE
From #TWMVTO_CNTB_Q49_1 T1                  
  Left Outer Join TMPLAN_EMPR T2                                
  On T2.CO_EMPR = @ISCO_EMPR                            
  And T1.CO_CNTA_CONT = T2.CO_CNTA_EMPR                              
Where T1.IM_MVTO_CARG <> 0 Or T1.IM_MVTO_ABON <> 0
And T1.FE_ASTO_CNTB is not null                            
Order By T1.NU_CONT                                
                                
End    
               
Return                                
/*----------------------------------- Fin ---------------------------------*/ 

GO
